package com.example.rssreader.dto;

import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
 * 添加RSS源请求DTO
 * 用于接收添加RSS源的请求参数
 * 
 * @author RSS Reader Team
 * @version 1.0.0
 * @since 2024-01-01
 */
@Data
@Accessors(chain = true)
public class AddFeedRequest {

    /**
     * RSS源URL地址
     * 必填字段，必须是有效的URL格式
     */
    @NotBlank(message = "RSS URL不能为空")
    @Size(max = 500, message = "RSS URL长度不能超过500字符")
    @Pattern(
        regexp = "^https?://.*",
        message = "请输入有效的HTTP或HTTPS URL"
    )
    private String url;

    /**
     * 自定义RSS源标题
     * 可选字段，如果不提供则使用RSS源自身的标题
     */
    @Size(max = 200, message = "标题长度不能超过200字符")
    private String customTitle;

    /**
     * RSS源描述
     * 可选字段，用于添加自定义描述信息
     */
    @Size(max = 1000, message = "描述长度不能超过1000字符")
    private String description;
}